package baseclass.i_GreedyStrategy;

import java.util.Arrays;

/*
   给定一个字符串类型的数组strs，找到一种拼接方式，使得把所有字符串拼起来之后形成的字符串具有最低的字典序。
    如： ac,abc --> 排序后 ab,cac   因为ab,cac<ac,abc
    注意：b,ba  --> 排序后 ba,b不是b,ba 因为ba,b< b,ba
    这里的排序策略是 str1与str2：
        str1.str2 < str2.str1而不是 单纯看str1与str2的字典序
 */
public class SortStr {
    public static void sortStr(String[] strs){
        if(strs == null || strs.length <= 1) return;
        Arrays.sort(strs,((o1, o2) -> (o1 + o2).compareTo(o2 + o1)));
    }

    public static void main(String[] args) {
        System.out.println("a".compareTo("b"));
        System.out.println("ab".compareTo("ac"));

        String[] strs1 = { "jibw", "ji", "jp", "bw", "jibw" };
        String[] strs2 = { "ba", "b" };
        sortStr(strs1);
        sortStr(strs2);
        System.out.println(Arrays.toString(strs1));
        System.out.println(Arrays.toString(strs2));
    }
}
